package com.xydtech.ecard.ecard.mapper;

import com.xydtech.ecard.ecard.domain.EcardApiEnterpriseInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子名片企业信息Mapper接口
 *
 * @author yuzhiguo
 * @date 2024-07-18 下午2:15
 */
public interface EcardApiEnterpriseInfoMapper {

    /**
     * 查询电子名片我的企业信息列表
     * @param ecardEnterpriseInfo
     * @return
     */
    List<EcardApiEnterpriseInfo> getMyEnterpriseList(EcardApiEnterpriseInfo ecardEnterpriseInfo);

    /**
     * 唯一值验证,相同行业、支行、门头名不能重复
     * @param ecardEnterpriseInfo
     * @return
     */
    int validateEnterpriseInfo(EcardApiEnterpriseInfo ecardEnterpriseInfo);

    /**
     * 查询电子名片企业信息
     * @param id
     * @return
     */
    EcardApiEnterpriseInfo selectEcardEnterpriseInfoById(Long id);

    /**
     * 查询电子名片企业信息列表
     * @param ecardEnterpriseInfo
     * @return
     */
    List<EcardApiEnterpriseInfo> getEnterpriseList(EcardApiEnterpriseInfo ecardEnterpriseInfo);

    /**
     * 保存电子名片企业信息
     * @param ecardEnterpriseInfo
     * @return
     */
    int addEnterpriseInfo(EcardApiEnterpriseInfo ecardEnterpriseInfo);

    /**
     * 查询企业地图坐标列表接口
     * @param creatorId
     * @param deptId
     * @param industry
     * @return
     */
    List<EcardApiEnterpriseInfo> getEnterpriseCoordinateList(@Param("creatorId") Long creatorId,
                                                             @Param("deptId") Long deptId,
                                                             @Param("industry") Integer industry,
                                                             @Param("entLocationType") String entLocationType);

    /**
     * 根据法人机构ID查询机构下所有企业坐标信息列表
     *
     * @param deptId
     * @param industry
     * @return
     */
    List<EcardApiEnterpriseInfo> getAllEnterpriseCoordinateList(@Param("creatorId") Long creatorId,
                                                                @Param("deptId") Long deptId,
                                                                @Param("industry") Integer industry,
                                                                @Param("entLocationType") String entLocationType);

    /**
     * 查询电子名片企业信息
     * @param id
     * @param creatorId
     * @return
     */
    EcardApiEnterpriseInfo selectEcardEnterpriseInfoByIdAndCreatorId(@Param("id") Long id, @Param("creatorId") Long creatorId);

    /**
     * 根据ID修改企业状态
     * @param id
     * @return
     */
    int changeEnterpriseStatus(Long id);

    /**
     * 变更企业归属客户经理
     * @param id
     * @param creatorId
     * @param deptId
     * @return
     */
    int updateEnterpriseUserId(@Param("id") Long id, @Param("creatorId") Long creatorId, @Param("deptId") Long deptId);

}
